{"version":3,"file":"static/chunks/pages/[locale]/products/[slug]-6b1f64780c3ddc67.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@mui/icons-material/ExpandMore.js","webpack://_N_E/./node_modules/@mui/icons-material/ZoomIn.js","webpack://_N_E/./node_modules/@mui/system/esm/createBox.js","webpack://_N_E/./node_modules/@mui/material/Box/Box.js","webpack://_N_E/?bc2a","webpack://_N_E/./components/breadcrumb/Breadcrumb.tsx","webpack://_N_E/./hooks/useBreadcrumb.tsx","webpack://_N_E/./hooks/useKlaviyo.tsx","webpack://_N_E/./libs/contentful/ComponentMapping.ts","webpack://_N_E/./libs/contentful/components/CmsPage.tsx","webpack://_N_E/./components/yotpo-product-review/YotpoProductReview.tsx","webpack://_N_E/./components/productDetailPage/product-detail/ProductDetailContainer.tsx","webpack://_N_E/./components/ui/readMore/ReadMore.tsx","webpack://_N_E/./components/productDetailPage/product-detail/badge/Badge.tsx","webpack://_N_E/./components/productDetailPage/product-detail/recipe-gallery/RecipeCard.tsx","webpack://_N_E/./components/productDetailPage/product-detail/recipe-gallery/RecipeSlider.tsx","webpack://_N_E/./components/productDetailPage/product-detail/product-accordion/accordion-item/AccordionItem.tsx","webpack://_N_E/./components/productDetailPage/product-detail/product-accordion/ProductAccordion.tsx","webpack://_N_E/./components/productDetailPage/product-detail/product-gallery/ProductZoomInModal.tsx","webpack://_N_E/./components/productDetailPage/product-detail/product-gallery/ProductGallery.tsx","webpack://_N_E/./components/productDetailPage/product-detail/ProductDetails.tsx","webpack://_N_E/./components/productDetailPage/product-detail/helpers/ProductDetailHelpers.ts","webpack://_N_E/./components/productDetailPage/product-detail/ProductDisclaimer.tsx","webpack://_N_E/./pages/[locale]/products/[slug].tsx","webpack://_N_E/./components/breadcrumb/Breadcrumb.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/ProductDetailContainer.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/ProductDetails.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/badge/Badge.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/product-accordion/ProductAccordion.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/product-accordion/accordion-item/AccordionItem.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/product-gallery/ProductGallery.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/product-gallery/ProductZoomInModal.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/recipe-gallery/RecipeCard.module.scss","webpack://_N_E/./components/productDetailPage/product-detail/recipe-gallery/RecipeSlider.module.scss","webpack://_N_E/./components/ui/readMore/ReadMore.module.scss","webpack://_N_E/./styles/snippets/_product_disclaimer.module.scss"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)([/*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\"\n}, \"0\"), /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\"\n}, \"1\")], 'ZoomIn');\n\nexports.default = _default;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport defaultStyleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName,\n styleFunctionSx = defaultStyleFunctionSx\n } = options;\n const BoxRoot = styled('div')(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: theme\n }, other));\n });\n return Box;\n}","import { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n defaultTheme,\n defaultClassName: 'MuiBox-root',\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/[locale]/products/[slug]\",\n function () {\n return require(\"private-next-pages/[locale]/products/[slug].tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/[locale]/products/[slug]\"])\n });\n }\n ","import { CSSProperties, FC } from \"react\";\nimport { useMediaQuery } from \"@mui/material\";\nimport Link from \"next/link\";\nimport { ISlug } from \"@Types/Breadcrumbs\";\nimport { breadcrumbsSelector } from \"@wff/store/breadcrumbsSlice\";\nimport { useAppSelector } from \"@wff/store/hooks\";\nimport classes from \"./Breadcrumb.module.scss\";\n\ninterface IBreadcrumbProps {\n style?: CSSProperties;\n}\nconst Breadcrumb: FC = ({ style }) => {\n // let the style prop for custom inline styles (Required in PDP because of custom position for large screens).\n const breadcrumbs = useAppSelector(breadcrumbsSelector);\n const { slugs = [] } = breadcrumbs || {};\n const lastIndex = slugs.length > 1 ? slugs.length - 1 : slugs.length;\n const isMobile = useMediaQuery(\"(max-width:960px)\");\n return (\n \n
\n {slugs?.map((slug: ISlug, i: number) => {\n let validSlug = \"\";\n\n if (lastIndex === i) {\n validSlug = slug.title ? slug.title : \"\";\n } else {\n validSlug = slug.title ? `${slug.title} > ` : \"\";\n }\n\n if (slug?.link) {\n return (\n \n \n {validSlug}\n \n
\n );\n } else {\n return (\n validSlug && (\n
\n \n {validSlug}\n \n
\n )\n );\n }\n })}\n \n \n );\n};\n\nexport default Breadcrumb;\n","import { useEffect } from \"react\";\nimport { BreadcrumbProps } from \"@Types/Breadcrumbs\";\nimport {\n setHomeSlug,\n setCollectionSlug,\n setCurrentSlug,\n} from \"@wff/store/breadcrumbsSlice\";\nimport { useAppDispatch } from \"@wff/store/hooks\";\n\nexport const useBreadcrumb = (props: BreadcrumbProps) => {\n // homeSlug: {title: \"title\", link:\"/\"} - (Set automatically in Contentful pages) - The First part of the slug, usually the Root.\n // collectionSlug: {title: \"title\", link:\"/\"} - (Needs to be set where the link is before user redirect) - The slug for the navigation category or product category (The collection where the link the user comes from is).\n // currentSlug: {title: \"title\", link:\"/\"} - (Needs to be set in the actual page) - The slug for the actual page where user is (The page the user is right now).\n\n const { homeSlug, collectionSlug, currentSlug } = props;\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (homeSlug) dispatch(setHomeSlug(homeSlug));\n if (collectionSlug) dispatch(setCollectionSlug(collectionSlug));\n if (currentSlug) dispatch(setCurrentSlug(currentSlug));\n }, [homeSlug, collectionSlug, currentSlug, dispatch]);\n};\n","import { useEffect, useRef } from \"react\";\nimport { useRouter } from \"next/router\";\nimport { ICTProductDataCurrent } from \"@Types/product\";\nimport { getItem, setItem } from \"@Utils/browserStorage\";\nimport {\n sendTrackKlaviyoEvent,\n sendViewedItemKlaviyoEvent,\n getFormattedProductForKlaviyo,\n getFormattedCheckoutDataForKlaviyo,\n} from \"@Utils/klaviyo\";\nimport { getFullPath } from \"@Utils/url\";\nimport { ICartState } from \"@wff/store/cartSlice\";\nimport { useAppSelector } from \"@wff/store/hooks\";\nimport { localeSelector } from \"@wff/store/localeSlice\";\n\nconst STORAGE_TYPE = \"session\";\nconst STORAGE_KEY = \"activeOnSite\";\n\nexport const useTrackActiveOnSite = () => {\n useEffect(() => {\n const userWasActive = getItem(STORAGE_KEY, STORAGE_TYPE);\n\n if (!userWasActive) {\n setItem(STORAGE_KEY, \"true\", STORAGE_TYPE);\n sendTrackKlaviyoEvent([\"Active on Site\"]);\n }\n }, []);\n};\n\nexport const useTrackViewedProduct = (\n currentProduct: ICTProductDataCurrent\n) => {\n const currentLocale = useAppSelector(localeSelector)?.languageCode;\n const mountRef = useRef(false);\n const { asPath } = useRouter();\n const url = getFullPath(asPath);\n\n const formattedProductData = getFormattedProductForKlaviyo(\n currentProduct,\n currentLocale,\n url\n );\n\n useEffect(() => {\n if (mountRef.current === false) {\n sendViewedItemKlaviyoEvent(formattedProductData);\n sendTrackKlaviyoEvent([\"Viewed Product\", formattedProductData]);\n\n mountRef.current = true;\n }\n }, [formattedProductData]);\n};\n\nexport const useStartedCheckoutProduct = (cartData: ICartState) => {\n const currentLocale = useAppSelector(localeSelector)?.languageCode;\n const { asPath } = useRouter();\n const mountRef = useRef(false);\n const url = getFullPath(asPath);\n\n const formattedCartData = getFormattedCheckoutDataForKlaviyo(\n cartData,\n currentLocale,\n url\n );\n\n useEffect(() => {\n if (mountRef.current === false) {\n sendViewedItemKlaviyoEvent(formattedCartData);\n sendTrackKlaviyoEvent([\"Started Checkout\", formattedCartData]);\n\n mountRef.current = true;\n }\n }, [formattedCartData]);\n};\n","import dynamic from \"next/dynamic\";\n\nexport type componentMappingTypes = {\n [Key in string]: Function;\n};\n\n/**\n * Map all the cms components here to dynamically display content from cms\n * In the JSON key must match with contentType.id from contentful cms\n */\nconst componentMapping: componentMappingTypes = {\n TextEditor: dynamic(\n () => import(\"@Libs/contentful/components/cms-text-editor/CmsTextEditor\")\n ),\n Banner: dynamic(\n () => import(\"@Components/contentful-components/banner/Banner\")\n ),\n HomePageHeroSlider: dynamic(\n () =>\n import(\n \"@Components/contentful-components/heroSlider/custom/HomePageHeroSlider\"\n )\n ),\n HeroSlider: dynamic(\n () => import(\"@Components/contentful-components/heroSlider/HeroSlider\")\n ),\n UserFeedback: dynamic(\n () => import(\"@Components/contentful-components/user-feedback/UserFeedBack\")\n ),\n UserReviews: dynamic(\n () => import(\"@Components/contentful-components/user-reviews/UserReviews\")\n ),\n SalesPropositions: dynamic(\n () =>\n import(\n \"@Components/contentful-components/uniqueSalesPropositions/UniqueSalesPropositions\"\n )\n ),\n CarouselProductList: dynamic(\n () =>\n import(\"@Components/contentful-components/promo-carousel/PromoCarousel\")\n ),\n Educational: dynamic(\n () => import(\"@Components/contentful-components/educational/Educational\")\n ),\n KnowYourCuts: dynamic(\n () =>\n import(\"@Components/contentful-components/know-your-cuts/KnowYourCuts\")\n ),\n StoriesOfWildfork: dynamic(\n () => import(\"@Components/storiesOfWildfork/StoriesOfWildfork\")\n ),\n MediaImage: dynamic(\n () => import(\"@Components/contentful-components/media-image/MediaImage\")\n ),\n\n RichTextContent: dynamic(\n () => import(\"@Components/contentful-components/rich-text/RichTextContent\")\n ),\n\n MembershipTable: dynamic(\n () =>\n import(\n \"@Components/contentful-components/membership-table/MembershipTable\"\n )\n ),\n\n MediaEmbedYoutubeVideo: dynamic(\n () =>\n import(\n \"@Components/contentful-components/media-embed-youtube-video/MediaEmbedYoutubeVideo\"\n )\n ),\n\n SectionTitleIconDescription: dynamic(\n () =>\n import(\n \"@Components/contentful-components/section-title-icon-description/SectionTitleIconDescription\"\n )\n ),\n\n SectionTextImage: dynamic(\n () =>\n import(\n \"@Components/contentful-components/section-text-image/SectionTextImage\"\n )\n ),\n\n SectionDivider: dynamic(\n () =>\n import(\"@Components/contentful-components/section-divider/SectionDivider\")\n ),\n};\n\nexport default componentMapping;\n","import logger from \"@Utils/Logger\";\nimport AppLayout from \"@wff/components/layout/AppLayout\";\nimport { useBreadcrumb } from \"@wff/hooks/useBreadcrumb\";\nimport componentMapping from \"../ComponentMapping\";\nimport { getCmsPageBySlug } from \"../Contentful.helper\";\n\ninterface cmsPageProps {\n children?: React.ReactNode;\n pageModel: any;\n pageTitle?: string;\n productSKU?: string;\n pageDescription?: string;\n}\n\ninterface pageModelTypes {\n locale?: string;\n slug?: string;\n productId?: string;\n resourceName?: string;\n}\n\ninterface getCMSPageModelOptions {\n keepOriginalSlug?: boolean;\n}\n\n/**\n * Component - CMS Page\n * @returns\n */\nconst CmsPage = (props: cmsPageProps) => {\n const {\n pageModel,\n pageTitle = \"\",\n productSKU,\n pageDescription = \"\",\n children,\n } = props;\n const contents = pageModel?.pageContent?.templates?.items ?? [];\n\n let templates;\n if (contents.length > 0) {\n let Comp;\n templates = contents.map((content: any, index: number) => {\n const contentKey = content?.content_type;\n // eslint-disable-next-line security/detect-object-injection\n Comp = componentMapping[contentKey];\n if (Comp) {\n return ;\n } else {\n return null;\n }\n });\n }\n // set the Root label for Breadcrumbs in all pages\n useBreadcrumb({\n homeSlug: {\n title: pageModel?.siteGlobal?.homeSlugLabel\n ? pageModel?.siteGlobal?.homeSlugLabel\n : \"Home\",\n link: \"/\",\n },\n });\n\n return (\n <>\n \n {templates}\n {children}\n \n \n );\n};\n\nexport const getCMSPageModel = async (\n query: string,\n payload: pageModelTypes,\n options?: getCMSPageModelOptions\n) => {\n const { locale = \"en-US\", slug } = payload;\n const { keepOriginalSlug = false } = options || {};\n let slugStr = slug;\n\n const country = (locale.split(\"-\")?.[1] ?? \"us\").toLocaleLowerCase();\n\n if (slug && !keepOriginalSlug) {\n slugStr = `wildfork-${country}-${slug}`;\n }\n\n const reqPayload = {\n ...payload,\n slug: slugStr,\n country,\n };\n\n logger.info(\"CmsPage.tsx getCMSPageModel()\", payload);\n\n return await getCmsPageBySlug(query, reqPayload);\n};\n\nexport default CmsPage;\n","import { useEffect } from \"react\";\n\nexport interface ProductReviewProps {\n id: string;\n price: string;\n currency: string;\n name: string;\n url: string;\n imageUrl: string;\n}\n\nexport const YotpoProductReview = (prop: ProductReviewProps) => {\n useEffect(() => {\n if (window?.yotpo) {\n window.yotpo.refreshWidgets();\n }\n }, [prop.id]);\n\n return (\n \n );\n};\n","import React, { FC, useState, useRef } from \"react\";\nimport { useRouter } from \"next/router\";\nimport { YotpoProductReview } from \"@Components/yotpo-product-review/YotpoProductReview\";\nimport { getFullPath } from \"@Utils/url\";\nimport { useLocaleRouter } from \"@wff/hooks/useLocaleRouter\";\nimport { ProductDetails, ProductDisclaimer } from \".\";\nimport classes from \"./ProductDetailContainer.module.scss\";\n\nconst DISCLAIMER_CONTENT_LENGTH = 66;\nconst DISCLAIMER_READ_MORE = \" Read More\";\nconst DISCLAIMER_SHOW_LESS = \" Show Less\";\n\ninterface Props {\n productData: any;\n}\n\nconst useProductData = (productData: any) => {\n const { asPath } = useRouter();\n const url = getFullPath(asPath);\n const { languageCode } = useLocaleRouter();\n const { productId = \"\", imageSet = {} } =\n productData.pageContent?.productData || {};\n const currentProduct = productData?.ctData?.masterData?.current;\n const title = currentProduct?.name ? currentProduct?.name[languageCode] : \"\";\n const disclaimerText = productData?.pageContent?.disclaimer;\n\n return {\n productId,\n title,\n url,\n imageUrl: `${imageSet?.mainImage?.url}?fm=webp&w=1920&h=1080` || \"\",\n disclaimerText,\n };\n};\n\nexport const ProductDetailContainer: FC = ({ productData }) => {\n const { productId, title, url, imageUrl, disclaimerText } =\n useProductData(productData);\n const [isReadMore, setIsReadMore] = useState(true);\n const toggleReadMore = () => {\n setIsReadMore(!isReadMore);\n };\n\n const getDisclaimerText = (text: any) => {\n const disclaimerHeading = text?.json?.content[0].content[0].value;\n const disclaimerContent = text?.json?.content[0].content[1].value;\n return (\n
\n \n {disclaimerHeading}\n \n \n {isReadMore\n ? disclaimerContent.slice(0, DISCLAIMER_CONTENT_LENGTH)\n : disclaimerContent}\n {disclaimerContent.length > DISCLAIMER_CONTENT_LENGTH && (\n \n {isReadMore ? \"...\" : \"\"}\n \n {isReadMore ? DISCLAIMER_READ_MORE : DISCLAIMER_SHOW_LESS}\n \n \n )}\n \n
\n );\n };\n\n const reviewsRef = useRef(null);\n\n return (\n
\n \n\n
\n \n
\n\n
\n {getDisclaimerText(disclaimerText)}\n
\n
\n \n
\n
\n );\n};\n","import { useTranslation } from \"next-i18next\";\nimport { FC, useState, useEffect } from \"react\";\nimport classes from \"./ReadMore.module.scss\";\n\nexport interface ReadMoreProps {\n minLength?: number;\n children: string;\n readMore?: string;\n readLess?: string;\n isActive?: boolean;\n toggleReadMore?: any;\n}\n\nconst ReadMore: FC = ({\n readMore,\n readLess,\n minLength,\n children,\n isActive,\n toggleReadMore,\n}) => {\n const [filteredText, setFilteredText] = useState(\"\");\n\n const { t } = useTranslation(\"common\");\n\n const text =\n isActive && children?.length > minLength!\n ? `${children?.slice(0, minLength! - 3)}...`\n : children;\n\n useEffect(() => {\n const textFiltered = text?.replace(/<[^>]*>/g, \" \");\n setFilteredText(textFiltered);\n }, [text]);\n\n return (\n

\n {isActive ? (\n \n ) : (\n \n )}\n\n {children?.length > minLength! ? (\n \n  \n {isActive\n ? readMore\n ? readMore\n : t(\"general.accessibility.read_more\")\n : readLess\n ? readLess\n : t(\"general.accessibility.read_less\")}\n \n ) : (\n <>\n )}\n

\n );\n};\n\nReadMore.defaultProps = {\n minLength: 100,\n readLess: \"\",\n readMore: \"\",\n isActive: true,\n toggleReadMore: false,\n};\n\nexport default ReadMore;\n","import { FC, ReactNode } from \"react\";\nimport classes from \"./Badge.module.scss\";\n\ntype Props = {\n type?: string;\n children?: ReactNode;\n};\n\nconst Badge: FC = ({ type, children }) => {\n return (\n
\n {children}\n
\n );\n};\n\nexport default Badge;\n","import { FC } from \"react\";\nimport LinkComponent from \"@Components/Link\";\nimport Image from \"components/Image\";\nimport { IRecipeCardProps } from \"./RecipeSlider.types\";\nimport classes from \"./RecipeCard.module.scss\";\n\nconst ProductTile: FC = ({ className, item }) => {\n const {\n //slug,\n title = \"\",\n recipeCardDifficultyTitle,\n recipeCardDifficultyValue,\n recipeCardTimeTitle,\n recipeCardTimeValue,\n recipeCardServingTitle,\n recipeCardServingValue,\n imageList,\n linkToRecipe,\n } = item || {};\n const imageUrl = imageList?.items\n ? `${imageList?.items[0].url}?fm=webp&w=1024&h=768`\n : \"\";\n const imageTitle = imageList?.items ? imageList?.items[0].title : \"\";\n return (\n \n
\n \n \n \n \n
\n \n \n \n\n

\n {title}\n

\n\n
\n
\n \n \n {`${recipeCardDifficultyTitle}: `}\n {recipeCardDifficultyValue}\n \n \n {`${recipeCardTimeTitle}: `}\n {recipeCardTimeValue}\n \n \n {`${recipeCardServingTitle}: `}\n {recipeCardServingValue}\n \n \n
\n
\n \n );\n};\n\nexport default ProductTile;\n","import { useEffect, useRef, useState } from \"react\";\nimport Slider from \"react-slick\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport Icon from \"@Components/ui/icon/Icon\";\nimport useWindowDimensions from \"../../../../hooks/useWindowDimensions\";\nimport RecipeCard from \"./RecipeCard\";\nimport {\n RecipeSliderProps,\n IArrowProps,\n LazyType,\n IRefProps,\n ISliderItem,\n} from \"./RecipeSlider.types\";\nimport classes from \"./RecipeSlider.module.scss\";\n\nexport default function RecipeSlider({ recipeSliderItems }: RecipeSliderProps) {\n const items = recipeSliderItems;\n const { width } = useWindowDimensions();\n const maxSlides = width > 480 ? 2 : 1;\n const [currentSlide, setCurrentSlide] = useState(0);\n const sliderRef = useRef(null);\n\n const SamplePrevArrow = (props: IArrowProps) => {\n const { currentSlide } = props;\n const disabledArrow = currentSlide !== undefined && currentSlide < 1;\n const arrowClass = disabledArrow\n ? `${\n classes[\"arrow\"] +\n \" \" +\n classes[\"arrow-left\"] +\n \" \" +\n classes[\"disabled-arrow\"]\n }`\n : `${classes[\"arrow\"] + \" \" + classes[\"arrow-left\"]}`;\n\n const handleLeftArrowClick = () => {\n if (currentSlide && currentSlide > 0) setCurrentSlide(currentSlide - 1);\n };\n\n return (\n \n \n \n );\n };\n\n const SampleNextArrow = (props: IArrowProps) => {\n const { slideCount, currentSlide } = props;\n const disabledArrow =\n currentSlide !== undefined &&\n slideCount !== undefined &&\n currentSlide >= slideCount - maxSlides;\n const arrowClass = disabledArrow\n ? `${\n classes[\"arrow\"] +\n \" \" +\n classes[\"arrow-right\"] +\n \" \" +\n classes[\"disabled-arrow\"]\n }`\n : `${classes[\"arrow\"] + \" \" + classes[\"arrow-right\"]}`;\n\n const handleRightArrowClick = () => {\n if (slideCount && currentSlide !== undefined && currentSlide < slideCount)\n setCurrentSlide(currentSlide + 1);\n };\n\n return (\n \n \n \n );\n };\n\n // Carousel/Slider settings:\n const settings = {\n infinite: false,\n lazyLoad: \"progressive\" as LazyType,\n swipeDirection: \"down\",\n speed: 500,\n slidesToShow: 2,\n slidesToScroll: 1,\n arrows: true,\n adaptiveHeight: false,\n prevArrow: ,\n nextArrow: ,\n dots: false,\n className: classes[\"section-slider\"],\n initialSlide: currentSlide,\n beforeChange: (prev: number, next: number) => {\n if (next !== prev) setCurrentSlide(next);\n },\n responsive: [\n {\n breakpoint: 960,\n settings: {\n slidesToShow: 3,\n slidesToScroll: 3,\n infinite: false,\n },\n },\n {\n breakpoint: 640,\n settings: {\n slidesToShow: 2,\n slidesToScroll: 2,\n initialSlide: 0,\n },\n },\n {\n breakpoint: 480,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n },\n },\n ],\n };\n\n useEffect(() => {\n if (sliderRef.current) sliderRef.current.slickGoTo(currentSlide);\n }, [currentSlide]);\n\n return (\n <>\n \n {items?.map((item: ISliderItem, i: number) => (\n \n ))}\n \n \n );\n}\n","import clsx from \"clsx\";\nimport { useState } from \"react\";\nimport Icon from \"@wff/components/ui/icon\";\nimport classes from \"./AccordionItem.module.scss\";\n\nexport const ACCORDION_ITEM_ID = \"accordion-item\";\n\ntype Props = {\n title: string;\n children: React.ReactNode;\n className?: string;\n};\n\nexport const AccordionItem = ({ title, children, className }: Props) => {\n const [isActive, setIsActive] = useState(false);\n const setIsActiveHandler = () => {\n setIsActive(!isActive);\n };\n\n return (\n
\n \n \n

{title}

\n
\n {isActive ? (\n \n ) : (\n \n )}\n
\n
\n
\n
{children}
\n
\n \n \n );\n};\n","import { useState } from \"react\";\nimport { Modal } from \"@Components/ui\";\nimport CmsTextEditorContent from \"@Libs/contentful/components/cms-text-editor/CmsTextEditor\";\nimport Image from \"components/Image\";\nimport RecipeSlider from \"../recipe-gallery/RecipeSlider\";\nimport { AccordionItem } from \"./accordion-item\";\nimport classes from \"./ProductAccordion.module.scss\";\n\ninterface IAccordionData {\n expandable1Content: {};\n expandable1Label: string;\n expandable2Label: string;\n expandable3Label: string;\n prepTips: string;\n isFixedPrice: boolean;\n nutritionImage: {\n url: string;\n title: string;\n width: number;\n height: number;\n };\n recipes: any;\n}\ntype ProductAccordionProps = {\n accordionData: IAccordionData;\n};\n\nexport const ProductAccordion = ({ accordionData }: ProductAccordionProps) => {\n const [showModal, setShowModal] = useState(false);\n const closeModalHandler = () => {\n setShowModal(false);\n };\n\n const {\n expandable1Content,\n expandable1Label,\n expandable2Label,\n expandable3Label,\n prepTips,\n nutritionImage,\n isFixedPrice,\n recipes,\n } = accordionData;\n\n return (\n
\n {!isFixedPrice && (\n \n \n \n )}\n {prepTips ? (\n \n

{prepTips}

\n
\n ) : (\n <>\n )}\n {recipes?.length > 0 && (\n \n \n \n )}\n\n {showModal && (\n \n
\n \n
\n
\n )}\n
\n );\n};\n","import React, { FC, useState } from \"react\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport ZoomInIcon from \"@mui/icons-material/ZoomIn\";\nimport { Box, Modal } from \"@mui/material\";\nimport Image from \"next/image\";\nimport classes from \"./ProductZoomInModal.module.scss\";\ninterface ProductZoomInModalProps {\n handleZoomIn: any;\n image?: any;\n}\nconst ProductZoomInModal: FC = ({\n handleZoomIn,\n image,\n}) => {\n const [isZoomed, setIsZoomed] = useState(false);\n\n const handleModalClose = () => {\n setIsZoomed(false);\n };\n\n const style = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: \"98%\",\n height: \"98%\",\n bgcolor: \"background.paper\",\n border: \"2px solid #000\",\n boxShadow: 24,\n p: 4,\n };\n\n const customLoader = ({ src }: any) => {\n return src;\n };\n\n return (\n
\n {\n handleZoomIn();\n setIsZoomed(true);\n }}\n data-testid=\"zoom-icon\"\n />\n {isZoomed && (\n \n \n \n \n \n \n )}\n
\n );\n};\n\nexport default ProductZoomInModal;\n","import clsx from \"clsx\";\nimport { useState, useRef, FC } from \"react\";\nimport { Slide } from \"react-slideshow-image\";\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport { Grid, IconButton, useMediaQuery } from \"@mui/material\";\nimport { CMSImageType } from \"@Types/Contentful\";\nimport Image from \"components/Image\";\nimport ProductZoomInModal from \"./ProductZoomInModal\";\nimport classes from \"./ProductGallery.module.scss\";\ninterface ISlide extends Slide {}\n\ninterface IProductGalleryProps {\n imageSet: {\n productId?: string;\n mainImage: CMSImageType;\n otherImages?: {\n items: CMSImageType[];\n };\n nutritionFactsImage?: CMSImageType;\n };\n}\n\ninterface ISliderMenuProps {\n mainImage: CMSImageType;\n otherImages?: {\n items: CMSImageType[];\n };\n nutritionFactsImage?: CMSImageType;\n}\n\nconst ProductGallery: FC = ({ imageSet }) => {\n const [selectedImage, setSelectedImage] = useState(0);\n const sliderRef = useRef(null);\n const [image, setImage] = useState(\"\");\n const containerRef = useRef(null);\n const isMobile = useMediaQuery(\"(max-width:480px)\");\n const { mainImage, otherImages, nutritionFactsImage } = imageSet;\n const nutritionImageIndex = otherImages?.items\n ? otherImages?.items?.length + 1\n : 1;\n if (!mainImage?.url) {\n return null;\n }\n\n const onChangeHandler = (_: never, newIndex: number) => {\n setSelectedImage(newIndex);\n };\n\n const isSelected = (index: number) => {\n return index === selectedImage;\n };\n\n const onThumbnailClick = (index: number) => {\n if (sliderRef?.current?.goTo) {\n sliderRef.current.goTo(index);\n setSelectedImage(index);\n }\n };\n\n const handleZoomIn = (image: any) => {\n setImage(image);\n };\n\n const scrollToBottom = () => {\n if (containerRef.current) {\n const child = containerRef.current as any;\n child.scrollTo({\n top: child.offsetHeight,\n behavior: \"smooth\",\n });\n }\n };\n\n const countImages = () => {\n let count = 0;\n return function (image: any) {\n if (image) {\n return (count += Object.entries(image).length > 0 ? 1 : 0);\n }\n return count;\n };\n };\n\n const SliderMenu: FC = ({\n mainImage,\n otherImages,\n nutritionFactsImage,\n }) => {\n let imagesLength = 0;\n const imageCountSum = countImages();\n imageCountSum(mainImage);\n imagesLength =\n (otherImages &&\n otherImages?.items?.length + imageCountSum(nutritionFactsImage)) ||\n 0;\n\n const showExpandMore = imagesLength > 4;\n return (\n \n
\n onThumbnailClick(0)}\n onKeyDown={() => onThumbnailClick(nutritionImageIndex)}\n >\n \n
\n {otherImages?.items.map((image, index) => (\n onThumbnailClick(index + 1)}\n onKeyDown={() => onThumbnailClick(nutritionImageIndex)} //added to remove sonar lint warning\n >\n \n \n ))}\n onThumbnailClick(nutritionImageIndex)}\n onKeyDown={() => onThumbnailClick(nutritionImageIndex)}\n >\n {nutritionFactsImage?.url && (\n \n )}\n \n {showExpandMore && (\n
\n \n \n \n
\n )}\n \n \n );\n };\n return (\n \n \n \n \n
\n \n {!isMobile && (\n handleZoomIn(mainImage)}\n image={image}\n />\n )}\n
\n {otherImages?.items.map((image) => (\n
\n \n {!isMobile && (\n handleZoomIn(image)}\n image={image}\n />\n )}\n
\n ))}\n {nutritionFactsImage && (\n
\n \n {!isMobile && (\n handleZoomIn(nutritionFactsImage)}\n image={image}\n />\n )}\n
\n )}\n \n
\n \n );\n};\n\nexport default ProductGallery;\n","/* eslint-disable sonarjs/cognitive-complexity */\nimport { FC, useEffect, useState, useCallback, useRef } from \"react\";\nimport React from \"react\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport Breadcrumb from \"@Components/breadcrumb/Breadcrumb\";\nimport {\n getItemQty,\n getWeightValue,\n getAllBadges,\n formatNetWeight,\n getUomValue,\n getPriceOrDiscounted,\n formatUnitPrice,\n formatUnitPriceCA,\n getQtyPerPackage,\n getCTUnitPrice,\n filterItemDetailsForDataLayer,\n FilterItemType,\n getMinAndMaxWeight,\n} from \"@Components/cart/helpers/helpers\";\nimport ButtonCartAddOrUpdate from \"@Components/ui/buttons/button-cart-add-or-update/ButtonCartAddOrUpdate\";\nimport ReadMore from \"@Components/ui/readMore/ReadMore\";\nimport { StarRating } from \"@Components/ui/star-rating/StarRating\";\nimport { nextAppEnv } from \"@Utils/environment\";\n\nimport { currency } from \"@Utils/index\";\nimport { isCanadianLocale } from \"@Utils/locale\";\nimport Icon from \"@wff/components/ui/icon\";\nimport { useBreadcrumb } from \"@wff/hooks/useBreadcrumb\";\nimport { useCustomer } from \"@wff/hooks/useCustomer\";\nimport { useFavorites } from \"@wff/hooks/useFavorites\";\nimport { useTrackViewedProduct } from \"@wff/hooks/useKlaviyo\";\nimport { ICartLineItem } from \"@wff/interfaces\";\nimport { useAppSelector, useAppDispatch } from \"@wff/store/hooks\";\nimport { localeSelector } from \"@wff/store/localeSlice\";\nimport useWindowDimensions from \"../../../hooks/useWindowDimensions\";\nimport Badge from \"./badge/Badge\";\nimport {\n getPrepTips,\n getCountryOfOrigin,\n} from \"./helpers/ProductDetailHelpers\";\nimport { ProductAccordion } from \"./product-accordion\";\nimport ProductGallery from \"./product-gallery/ProductGallery\";\nimport classes from \"./ProductDetails.module.scss\";\n\nexport interface IUOMPriceDisplay {\n qtyPerPackage: string;\n weight: string;\n UOM: string;\n unitPrice: string;\n currentLocale: string;\n netWeight: string;\n unitPriceCA?: string;\n}\n\nexport interface ProductDetailsProps {\n productData: any; // TODO: make a legitimate type for this\n reviewsRef: any;\n}\nconst GTMViewContent = (data: any, actualCurrency: string) => {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: \"ViewContent\",\n ViewContent: {\n content_type: \"Product\",\n contents: data,\n currency: actualCurrency,\n value: getPriceOrDiscounted(data.masterVariant.prices),\n },\n });\n\n // Updated dataLayer as per CE-1452\n window.dataLayer.push({ ecommerce: null }); // Clear the previous ecommerce object.\n const filteredItem = filterItemDetailsForDataLayer(\n data,\n FilterItemType.ViewItem\n );\n window.dataLayer.push({\n event: \"view_item\",\n ecommerce: {\n currency: actualCurrency,\n value: getPriceOrDiscounted(data.masterVariant.prices),\n items: [filteredItem],\n },\n });\n};\n\nexport const ProductDetails: FC = ({\n productData,\n reviewsRef,\n}) => {\n const { width } = useWindowDimensions();\n const dispatch = useAppDispatch();\n const { lineItems } = useAppSelector((state) => state.cart);\n const SKU = productData?.ctData?.masterData?.current?.masterVariant?.sku;\n const itemIndex = lineItems?.findIndex(\n (item: ICartLineItem) => item.sku === SKU\n );\n const [itemQuantity, setItemQuantity] = useState(\n getItemQty(lineItems, itemIndex)\n );\n const [qtyInputValue, setQtyInputValue] = useState(\n getItemQty(lineItems, itemIndex)\n );\n const currentLocale = useAppSelector(localeSelector)?.languageCode;\n\n const currentProduct = productData?.ctData?.masterData?.current;\n const [favIcon, setFavIcon] = useState(\"heart-outlined\");\n\n const isFavoritesEnableForCA =\n nextAppEnv.feature_toggle.CA.favorites === \"true\" ? true : false;\n\n //Trigger 'View Product' Klaviyo Event\n useTrackViewedProduct(currentProduct);\n\n const pageContent = productData?.pageContent;\n const isFixedPrice =\n productData?.ctData?.productType?.obj?.key === \"fixedPriceItem\"\n ? true\n : false;\n const lang = currentLocale;\n const attribs = currentProduct?.masterVariant?.attributes;\n const title = currentProduct?.name ? currentProduct?.name[lang] : \"\";\n const description = currentProduct?.description\n ? currentProduct?.description[lang]\n : \"\";\n const badges = getAllBadges(attribs, lang);\n const actualCurrency = currentLocale === \"en-CA\" ? \"CAD\" : \"USD\";\n const priceData = currentProduct?.masterVariant?.prices;\n const channels = currentProduct?.masterVariant?.availability?.channels;\n const weight = getWeightValue(attribs);\n const UOM = getUomValue(attribs);\n const ctUnitPrice = getCTUnitPrice(attribs);\n\n const availability =\n currentProduct?.masterVariant?.availability?.availableQuantity;\n const checkProductIsOnStock = () => {\n const isProductAvailable =\n channels &&\n Object.keys(channels).find((key) => {\n return channels[key]?.isOnStock === true;\n });\n return isProductAvailable\n ? true\n : currentProduct?.masterVariant?.availability?.isOnStock;\n };\n const isOnStock = checkProductIsOnStock();\n const qtyPerPackage = getQtyPerPackage(attribs);\n const netWeight = formatNetWeight(weight, UOM, currentLocale, isFixedPrice);\n const unitPrice = formatUnitPrice(ctUnitPrice, UOM);\n const variableMinAndMaxWeight = getMinAndMaxWeight(attribs, UOM);\n const unitPriceCA = formatUnitPriceCA(priceData, weight, UOM, currentLocale);\n const totalPrice = currency.format(getPriceOrDiscounted(priceData));\n const productPrice = getPriceOrDiscounted(priceData);\n const countryOfOriginLabel = pageContent?.countryOfOriginLabel;\n const countryOfOrigin = getCountryOfOrigin(attribs);\n const finalPriceMessage = pageContent?.finalPriceMessage;\n const imageSet = pageContent?.productData?.imageSet;\n const prepTips = getPrepTips(attribs, currentLocale);\n const recipes = pageContent?.productData?.recipes;\n const accordionData = {\n expandable1Content: pageContent?.expandable1Content,\n expandable1Label: pageContent?.expandable1Label,\n expandable2Label: pageContent?.expandable2Label,\n expandable3Label: pageContent?.expandable3Label,\n prepTips: prepTips,\n nutritionImage: imageSet?.nutritionFactsImage,\n isFixedPrice: isFixedPrice,\n recipes: recipes,\n };\n\n const isMobile = useMediaQuery(\"(max-width:960px)\");\n const isMobileAndNotTablet = useMediaQuery(\"(max-width:479px)\");\n\n useEffect(() => {\n GTMViewContent(currentProduct, actualCurrency);\n }, [currentProduct, actualCurrency]);\n\n const incrementalPayload = {\n itemIndex: itemIndex,\n itemQuantity: itemQuantity,\n availability: availability,\n sku: SKU,\n callback: setItemQuantity,\n dispatch: dispatch,\n };\n\n const decrementalPayload = {\n itemIndex: itemIndex,\n itemQuantity: itemQuantity,\n lineItems: lineItems,\n sku: SKU,\n callback: setItemQuantity,\n dispatch: dispatch,\n };\n\n const handleOnChangeQuantity = (value: any) => {\n if (isNaN(Number(value))) {\n setQtyInputValue(qtyInputValue);\n return;\n }\n setQtyInputValue(Number(value));\n };\n\n const handleUpdateQuantityPayload = {\n itemQuantity: qtyInputValue,\n prevQuantity: itemQuantity,\n availability: availability,\n lineItems: lineItems,\n sku: SKU,\n callback: setQtyInputValue,\n dispatch: dispatch,\n };\n\n const ButtonCartAddOrUpdateProps = {\n decrementalPayload: decrementalPayload,\n handleOnChangeQuantity: handleOnChangeQuantity,\n handleUpdateQuantityPayload: handleUpdateQuantityPayload,\n incrementalPayload: incrementalPayload,\n isOnStock: isOnStock,\n itemQuantity: itemQuantity,\n qtyInputValue: qtyInputValue,\n currentProduct: currentProduct,\n productPrice: productPrice,\n productDetailPage: true,\n };\n\n const { favoritesList, handleAddFavorite, handleRemoveFavorite } =\n useFavorites();\n\n const [isFavorite, setIsFavorite] = useState(false);\n\n const handleFavorite = () => {\n favIcon === \"heart-outlined\"\n ? setFavIcon(\"heart-filled\")\n : setFavIcon(\"heart-outlined\");\n if (isFavorite) {\n handleRemoveFavorite(SKU, setIsFavorite);\n } else {\n handleAddFavorite(SKU, setIsFavorite);\n }\n setIsFavorite(!isFavorite);\n };\n\n const { isLoggedIn } = useCustomer();\n\n const { getFavoritesList } = useFavorites();\n\n const getFavoritesListMemo = useCallback(\n (type) => getFavoritesList(type),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const [isTitleExpanded, setIsTitleExpanded] = useState(false);\n useEffect(() => {\n isLoggedIn && getFavoritesListMemo(\"default\");\n }, [getFavoritesListMemo, isLoggedIn]);\n\n useEffect(() => {\n setIsFavorite(\n favoritesList?.some(\n (item: any) =>\n item?.ctData?.masterData?.current?.masterVariant?.sku === SKU\n )\n );\n }, [favoritesList, setIsFavorite, SKU]);\n\n useEffect(() => {\n isFavorite ? setFavIcon(\"heart-filled\") : setFavIcon(\"heart-outlined\");\n }, [isFavorite]);\n\n useEffect(() => {\n setItemQuantity(getItemQty(lineItems, itemIndex)); // TODO from Jared and Jose: could be made into a custom hook for duplicate logic in productTile.tsx\n setQtyInputValue(getItemQty(lineItems, itemIndex));\n }, [lineItems, itemIndex]);\n\n useBreadcrumb({ currentSlug: { title: title, link: \"\" } });\n const galleryWidth = `${((width / 3) * 2).toFixed(0)}px`;\n\n const ref1 = useRef(null);\n const ref2 = useRef(null);\n\n const isVisibleTablet = useIsVisible(ref2);\n\n const isVisibleLaptop = useIsVisible(ref1);\n\n function useIsVisible(ref: any) {\n const [isIntersecting, setIntersecting] = useState(false);\n\n useEffect(() => {\n const observer = new IntersectionObserver(([entry]) =>\n setIntersecting(entry.isIntersecting)\n );\n\n observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }, [ref]);\n\n return isIntersecting;\n }\n\n const [isActive, setActive] = useState(true);\n const toggleReadMore = () => setActive(!isActive);\n\n const scrollToReviews = () => {\n if (reviewsRef.current) {\n const reviews = reviewsRef.current.getBoundingClientRect();\n const offset = reviews.top - 250;\n window.scrollTo({ top: window.scrollY + offset, behavior: \"smooth\" });\n }\n };\n\n const scrollToReadMore = () => {\n window.scrollTo(0, 0);\n };\n\n const handleTitleExpand = () => {\n setIsTitleExpanded((prevState) => !prevState);\n };\n\n return (\n
\n
\n \n
\n {imageSet ? (\n \n ) : (\n
\n )}\n\n {!isMobile && (\n
\n \n
\n )}\n
\n
\n
\n \n handleTitleExpand()}\n onKeyDown={() => handleTitleExpand()} //added just to avoid sonarlint issue as this is no interactive element\n className={`${classes[\"product-title\"]} ${\n isMobile ? classes[\"mobile-product-title\"] : \"\"\n }\n ${isMobile && isTitleExpanded ? classes[\"expanded\"] : \"\"}`}\n >\n {title}\n \n
\n {(!isOnStock || badges.length > 0) && (\n
\n {!isOnStock ? (\n \n {productData?.pageContent?.outOfStockBadge}\n \n ) : (\n badges.map(\n (badge, i) =>\n i < 2 && (\n \n {badge}\n \n )\n )\n )}\n
\n )}\n\n
\n \n
\n {isMobileAndNotTablet && (\n <>\n \n {UOM === \"KG\" || UOM === \"LB\"\n ? `${qtyPerPackage ? qtyPerPackage : \"\"} ${netWeight}`\n : \"\"}\n \n <>\n \n {unitPrice}\n {isCanadianLocale(currentLocale) ? \"|\" : \"\"}\n \n {isCanadianLocale(currentLocale) ? unitPriceCA : \"\"}\n \n \n
\n {variableMinAndMaxWeight}\n
\n \n \n )}\n \n {!isMobileAndNotTablet && countryOfOriginLabel && countryOfOrigin ? (\n \n {countryOfOriginLabel}: {countryOfOrigin}\n \n ) : (\n <>\n )}\n \n {!isMobileAndNotTablet && width <= 1200 && (\n
\n \n {description}\n \n
\n )}\n {!isMobileAndNotTablet && width > 1200 && (\n
\n \n {description}\n \n
\n )}\n\n
\n {(isVisibleLaptop && width >= 768) ||\n (isVisibleTablet && width < 768) ? (\n
\n \n {\n scrollToReadMore();\n setActive(false);\n }}\n >\n Product Info\n \n \n Reviews\n \n
\n \n
{totalPrice}
\n {isMobileAndNotTablet && (\n \n \n
\n )}\n
\n \n
\n \n \n ) : (\n
\n \n {\n scrollToReadMore();\n setActive(false);\n }}\n >\n Product Info\n \n \n Reviews\n \n
\n \n
{totalPrice}
\n {isMobileAndNotTablet && (\n \n \n \n )}\n
\n \n
\n \n \n )}\n
{totalPrice}
\n {isMobileAndNotTablet && isFavoritesEnableForCA && (\n
\n \n
\n )}\n
\n \n
\n {!isMobileAndNotTablet && isFavoritesEnableForCA && (\n
\n \n
\n )}\n \n {!isMobileAndNotTablet && (\n
\n \n {UOM === \"KG\" || UOM === \"LB\"\n ? `${qtyPerPackage ? qtyPerPackage : \"\"} ${netWeight}`\n : \"\"}\n \n <>\n \n {unitPrice}\n {isCanadianLocale(currentLocale) ? \"|\" : \"\"}\n \n {isCanadianLocale(currentLocale) ? unitPriceCA : \"\"}\n \n
\n
\n {variableMinAndMaxWeight}\n
\n \n \n )}\n\n {isMobileAndNotTablet && (\n <>\n {countryOfOriginLabel && countryOfOrigin ? (\n \n {countryOfOriginLabel}: {countryOfOrigin}\n \n ) : (\n <>\n )}\n
\n \n {description}\n \n
\n \n )}\n\n {!isMobileAndNotTablet && !isFixedPrice && (\n
\n {finalPriceMessage}\n
\n )}\n {isMobile && (\n
\n \n
\n )}\n \n
\n );\n};\n","import { IProductAttributes } from \"@Types/promo-carousel/product-tile\";\nimport { isCanadianLocale } from \"@Utils/locale\";\n\nexport const getPrepTips = (attribs: any[], currentLocale: string) => {\n if (isCanadianLocale(currentLocale)) {\n const prepTipsIndex = attribs?.findIndex(\n (el: IProductAttributes) => el.name === \"prepTips\"\n );\n\n return prepTipsIndex > -1 && attribs[prepTipsIndex]?.value\n ? attribs[prepTipsIndex]?.value[currentLocale]\n : \"\";\n }\n};\n\nexport const getCountryOfOrigin = (attribs: any[]) => {\n const countryOfOriginIndex = attribs?.findIndex(\n (el: IProductAttributes) => el.name === \"countryOfOrigin\"\n );\n\n return countryOfOriginIndex > -1 && attribs[countryOfOriginIndex]?.value\n ? attribs[countryOfOriginIndex]?.value\n : \"\";\n};\n\nexport const getIngredients = (attribs: any[], currentLocale: string) => {\n if (isCanadianLocale(currentLocale)) {\n const ingredientsIndex = attribs?.findIndex(\n (el: IProductAttributes) => el.name === \"ingredients\"\n );\n\n return ingredientsIndex > -1 && attribs[ingredientsIndex]?.value\n ? attribs[ingredientsIndex]?.value[currentLocale]\n : \"\";\n }\n};\n","import { FC } from \"react\";\nimport CmsTextEditorContent from \"@Libs/contentful/components/cms-text-editor/CmsTextEditor\";\nimport classes from \"@Styles/snippets/_product_disclaimer.module.scss\";\n\nexport interface IProductDisclaimerProps {\n disclaimerText: {};\n}\nexport const ProductDisclaimer: FC = ({\n disclaimerText,\n}) => {\n return (\n
\n \n \n \n
\n );\n};\n\nProductDisclaimer.defaultProps = {\n disclaimerText: {},\n};\n","import { useEffect } from \"react\";\nimport { LocalizedString } from \"@commercetools/platform-sdk\";\nimport Script from \"next/script\";\nimport { ProductDetailContainer } from \"@Components/productDetailPage\";\nimport { DY_PAGE_CONTEXT } from \"@Constants/common\";\nimport CmsPage, { getCMSPageModel } from \"@Libs/contentful/components/CmsPage\";\nimport productDetailPageQuery from \"@Libs/contentful/queries/ProductDetailPageQuery\";\nimport { setDYContext } from \"@Libs/dynamic-yield/dynamicYield\";\nimport { getCtAllProducts, getCtDataBySlug } from \"@Utils/HomePageHelpers\";\nimport { nextAppEnv } from \"@Utils/environment\";\nimport { makeStaticProps } from \"@wff/libs/i18n/getStatic\";\nimport i18nextConfig from \"@wff/next-i18next.config\";\nimport { useAppSelector } from \"@wff/store/hooks\";\nimport { localeSelector } from \"@wff/store/localeSlice\";\n\ninterface IProductPageProps {\n pageModel: any;\n ctData: any;\n}\n\nconst ProductPage = ({ pageModel, ctData }: IProductPageProps) => {\n const { pageContent = {} } = pageModel;\n const productData = { pageContent, ctData };\n const currentProduct = ctData?.masterData?.current;\n const sku = currentProduct?.masterVariant?.sku ?? \"\";\n const { languageCode } = useAppSelector(localeSelector);\n\n //Set 'PRODUCT' DY-PageContext\n useEffect(\n () => setDYContext(DY_PAGE_CONTEXT.PRODUCT, languageCode, [sku]),\n [sku, languageCode]\n );\n\n return (\n <>\n \n \n \n \n \n );\n};\n\nexport async function getStaticPaths() {\n if (process.env.SKIP_BUILD_STATIC_GENERATION) {\n return {\n paths: [],\n fallback: \"blocking\",\n };\n }\n // Call an external API endpoint to get products\n const res = await getCtAllProducts();\n const products = res?.body?.results ? res?.body?.results : [];\n\n // Get the paths we want to prerender based on product\n // In production environments, prerender all pages\n // (slower builds, but faster initial page load)}\n\n const paths: {\n params: { slug: string | LocalizedString; locale: string };\n }[] = [];\n products.forEach((page: any) => {\n i18nextConfig?.i18n?.locales?.map((locale: string) => {\n const lng = locale;\n\n const slug = page?.masterData?.current?.slug[lng]\n ? page?.masterData?.current?.slug[lng]\n : \"\";\n\n if (slug) {\n paths.push({\n params: {\n slug: slug,\n locale: locale,\n },\n });\n }\n });\n });\n\n return { paths, fallback: false };\n}\n\nconst overrideStaticProps = async (props: any) => {\n const { locale, slug } = props;\n const lang = locale;\n const ctData = await getCtDataBySlug(slug, lang);\n let productId = \"\";\n let productIndex = -1;\n const productsData = ctData?.body?.results ?? null;\n\n if (productsData) {\n productIndex = productsData.findIndex(\n (product) => product?.masterData?.current?.slug[lang] === slug\n );\n productId =\n productsData[productIndex]?.masterData?.current?.masterVariant?.sku ?? \"\";\n }\n\n // Get the page model content from Contentful\n const pageModel = await getCMSPageModel(productDetailPageQuery, {\n productId,\n locale,\n slug,\n });\n\n // add the returned data to the new model\n const newPageModel = {\n ...pageModel,\n };\n\n const productData = productsData ? productsData[productIndex] : null;\n return {\n props: {\n pageModel: newPageModel,\n ctData: productData,\n },\n revalidate: 10, // TODO:- Set revalidation timeout based on the Architecture discussion\n };\n};\n\nconst getStaticProps = makeStaticProps([\"common\"], overrideStaticProps);\nexport { getStaticProps };\n\nexport default ProductPage;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breadcrumb\":\"Breadcrumb_breadcrumb__Zzb9z\",\"breadcrumb-container\":\"Breadcrumb_breadcrumb-container__rZxTN\",\"link-container\":\"Breadcrumb_link-container__qtErL\",\"plain-text-container\":\"Breadcrumb_plain-text-container__JozLZ\",\"slug-container\":\"Breadcrumb_slug-container__CdrjB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"product-detail-container\":\"ProductDetailContainer_product-detail-container__7U9um\",\"product-disclaimer-mobile\":\"ProductDetailContainer_product-disclaimer-mobile____IRm\",\"disclaimerContainer\":\"ProductDetailContainer_disclaimerContainer__xerg6\",\"disclaimerHeading\":\"ProductDetailContainer_disclaimerHeading__4lJ3I\",\"disclaimerReadMore\":\"ProductDetailContainer_disclaimerReadMore__M5KiF\",\"product-disclaimer-desktop\":\"ProductDetailContainer_product-disclaimer-desktop__pz1DF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"breadcrumb\":\"ProductDetails_breadcrumb__Zow_2\",\"product-details\":\"ProductDetails_product-details__vb1HV\",\"breadcrumb-and-gallery\":\"ProductDetails_breadcrumb-and-gallery__fet0G\",\"product-gallery\":\"ProductDetails_product-gallery__Vf_CP\",\"product-accordion\":\"ProductDetails_product-accordion__MU_Y6\",\"product-title\":\"ProductDetails_product-title__DoOBe\",\"product-tile__price-per-unit\":\"ProductDetails_product-tile__price-per-unit__EVMX7\",\"product-accordion__expandable__desktop\":\"ProductDetails_product-accordion__expandable__desktop__L7x_v\",\"product-info\":\"ProductDetails_product-info__3rSj0\",\"weight\":\"ProductDetails_weight__UVOfa\",\"weight-ca\":\"ProductDetails_weight-ca__5P2_w\",\"country\":\"ProductDetails_country__O7o1O\",\"price-per-unit-hide\":\"ProductDetails_price-per-unit-hide__prinE\",\"price-per-unit\":\"ProductDetails_price-per-unit__T74SL\",\"variable-min-max-weight\":\"ProductDetails_variable-min-max-weight__ePaqu\",\"weight-info\":\"ProductDetails_weight-info__kGtA8\",\"price\":\"ProductDetails_price__tihBY\",\"dynamic-price\":\"ProductDetails_dynamic-price__6ApG_\",\"dynamic-button\":\"ProductDetails_dynamic-button__Uu4Bb\",\"button\":\"ProductDetails_button__vC_px\",\"product-options\":\"ProductDetails_product-options__Se6RG\",\"product-info__footer\":\"ProductDetails_product-info__footer__X665n\",\"product-info__footer_dynamic_show\":\"ProductDetails_product-info__footer_dynamic_show__nQNRB\",\"fadeInBottom\":\"ProductDetails_fadeInBottom__71l7q\",\"product-info__footer_dynamic_hide\":\"ProductDetails_product-info__footer_dynamic_hide__QKYrs\",\"fadeOutBottom\":\"ProductDetails_fadeOutBottom__aYQgc\",\"product-info__footer_dynamic_align_right\":\"ProductDetails_product-info__footer_dynamic_align_right__gEuwa\",\"favorites-btn\":\"ProductDetails_favorites-btn__2lWZE\",\"btn\":\"ProductDetails_btn__4ZwuF\",\"product-info__footer_dynamic_align_left\":\"ProductDetails_product-info__footer_dynamic_align_left__ZuB09\",\"dynamic-redirecting-product-info\":\"ProductDetails_dynamic-redirecting-product-info__24_PX\",\"dynamic-redirecting-reviews\":\"ProductDetails_dynamic-redirecting-reviews__ewttC\",\"pricingMessage\":\"ProductDetails_pricingMessage__gntbF\",\"badge-container\":\"ProductDetails_badge-container__IskUL\",\"mobile-product-title\":\"ProductDetails_mobile-product-title__8s1D2\",\"expanded\":\"ProductDetails_expanded__nsVYT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"badge\":\"Badge_badge__BpdyK\",\"badge__name\":\"Badge_badge__name___e1fD\",\"badge--undefined\":\"Badge_badge--undefined__6uwkA\",\"badge--\":\"Badge_badge--__l0T0Z\",\"badge--badge\":\"Badge_badge--badge__aSArV\",\"badge--brand\":\"Badge_badge--brand__zgmIh\",\"badge--quality\":\"Badge_badge--quality__VLZyi\",\"badge--out-of-stock\":\"Badge_badge--out-of-stock__sptpg\",\"badge--status\":\"Badge_badge--status__MXfGB\",\"badge--new-product\":\"Badge_badge--new-product__EUSpT\",\"badge--overstock-price\":\"Badge_badge--overstock-price__YImn_\",\"badge--previously-ordered\":\"Badge_badge--previously-ordered__8yk5J\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"product-accordion\":\"ProductAccordion_product-accordion__xjJFq\",\"subtitle\":\"ProductAccordion_subtitle__wm2gc\",\"product-accordion__button\":\"ProductAccordion_product-accordion__button__s6xs4\",\"recipe-icon\":\"ProductAccordion_recipe-icon__NK_w4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"accordion-item__container\":\"AccordionItem_accordion-item__container__OhrYm\",\"accordion-item\":\"AccordionItem_accordion-item__vNU9m\",\"accordion-item__header\":\"AccordionItem_accordion-item__header__Tqzh4\",\"accordion-item__content\":\"AccordionItem_accordion-item__content__q5J28\",\"accordion-item__icon\":\"AccordionItem_accordion-item__icon__KfCYW\",\"accordion-item__icon-vertical\":\"AccordionItem_accordion-item__icon-vertical__2FQSf\",\"accordion-item__icon-horizontal\":\"AccordionItem_accordion-item__icon-horizontal__4YJFe\",\"content-text\":\"AccordionItem_content-text__Jed8F\",\"active\":\"AccordionItem_active__ekQd4\",\"icon-chevron\":\"AccordionItem_icon-chevron__PCysC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"product-gallery\":\"ProductGallery_product-gallery__lHiaQ\",\"thumbnail-slider\":\"ProductGallery_thumbnail-slider__1oodE\",\"thumbnail-slider__wrapper\":\"ProductGallery_thumbnail-slider__wrapper__7iheo\",\"selected\":\"ProductGallery_selected__cH_jc\",\"slider\":\"ProductGallery_slider__uLQ59\",\"model-layout\":\"ProductGallery_model-layout__Rjn3h\",\"show-more\":\"ProductGallery_show-more__IZBPV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zoomIcon\":\"ProductZoomInModal_zoomIcon__ZghvK\",\"closeIcon\":\"ProductZoomInModal_closeIcon__hXw2Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tns-item\":\"RecipeCard_tns-item__0om5w\",\"tns-slider\":\"RecipeCard_tns-slider__iU2Vd\",\"tns-horizontal\":\"RecipeCard_tns-horizontal__Lp6x7\",\"tns-subpixel\":\"RecipeCard_tns-subpixel__N8qGE\",\"recipe-card\":\"RecipeCard_recipe-card__ad25u\",\"recipe-card__title\":\"RecipeCard_recipe-card__title__DUNLm\",\"recipe-card--featured\":\"RecipeCard_recipe-card--featured__dhuFi\",\"recipe-card__link\":\"RecipeCard_recipe-card__link___QcCi\",\"recipe-card__footer\":\"RecipeCard_recipe-card__footer__1PpnS\",\"recipe-details\":\"RecipeCard_recipe-details__lZa3B\",\"recipe-details__label\":\"RecipeCard_recipe-details__label__NU1Te\",\"recipe-card__gallery\":\"RecipeCard_recipe-card__gallery__HybhR\",\"responsive-image\":\"RecipeCard_responsive-image__7fajW\",\"recipe-card__pricing\":\"RecipeCard_recipe-card__pricing___Qg9l\",\"badge-container\":\"RecipeCard_badge-container__0X66l\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"section-slider\":\"RecipeSlider_section-slider___vNVT\",\"title\":\"RecipeSlider_title__i3ILo\",\"section__flex-wrapper\":\"RecipeSlider_section__flex-wrapper__hyzR_\",\"collection-title\":\"RecipeSlider_collection-title__sePxe\",\"dot-nav\":\"RecipeSlider_dot-nav__SGojG\",\"tns-nav-active\":\"RecipeSlider_tns-nav-active__yxAYp\",\"dot-container\":\"RecipeSlider_dot-container__UFF5e\",\"dot\":\"RecipeSlider_dot__VNAOL\",\"dot__active\":\"RecipeSlider_dot__active__qYJMb\",\"arrow\":\"RecipeSlider_arrow__vSLcW\",\"arrow-left\":\"RecipeSlider_arrow-left__TNZ8m\",\"arrow-right\":\"RecipeSlider_arrow-right__rf6VC\",\"disabled-arrow\":\"RecipeSlider_disabled-arrow__mu8il\",\"dots-container\":\"RecipeSlider_dots-container__rcEgo\",\"dotsClass\":\"RecipeSlider_dotsClass___mFG0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"read-or-hide\":\"ReadMore_read-or-hide__QrySp\",\"description-text\":\"ReadMore_description-text__xBj8h\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"product-disclaimer__container\":\"_product_disclaimer_product-disclaimer__container__5W_bK\"};"],"names":["_interopRequireDefault","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_excluded","Box","options","defaultTheme","defaultClassName","generateClassName","styleFunctionSx","BoxRoot","inProps","ref","theme","useTheme","_extendSxProp","extendSxProp","className","component","other","as","createBox","ClassNameGenerator","window","__NEXT_P","push","style","useAppSelector","breadcrumbsSelector","slugs","lastIndex","length","isMobile","useMediaQuery","nav","classes","width","div","map","slug","i","validSlug","title","link","Link","href","a","span","useBreadcrumb","props","homeSlug","collectionSlug","currentSlug","dispatch","useAppDispatch","useEffect","setHomeSlug","setCollectionSlug","setCurrentSlug","useTrackViewedProduct","currentProduct","currentLocale","localeSelector","languageCode","mountRef","useRef","asPath","useRouter","url","getFullPath","formattedProductData","getFormattedProductForKlaviyo","current","sendViewedItemKlaviyoEvent","sendTrackKlaviyoEvent","useStartedCheckoutProduct","cartData","formattedCartData","getFormattedCheckoutDataForKlaviyo","TextEditor","dynamic","Banner","HomePageHeroSlider","HeroSlider","UserFeedback","UserReviews","SalesPropositions","CarouselProductList","Educational","KnowYourCuts","StoriesOfWildfork","MediaImage","RichTextContent","MembershipTable","MediaEmbedYoutubeVideo","SectionTitleIconDescription","SectionTextImage","SectionDivider","query","payload","locale","keepOriginalSlug","slugStr","country","reqPayload","split","toLocaleLowerCase","logger","getCmsPageBySlug","pageModel","templates","Comp","pageTitle","productSKU","pageDescription","children","contents","pageContent","items","content","index","contentKey","content_type","componentMapping","siteGlobal","homeSlugLabel","AppLayout","YotpoProductReview","prop","yotpo","refreshWidgets","id","data-product-id","data-price","price","data-currency","currency","data-name","name","data-url","data-image-url","imageUrl","data-yotpo-element-id","ProductDetailContainer","productData","useProductData","imageSet","useLocaleRouter","productId","ctData","masterData","disclaimerText","disclaimer","mainImage","useState","isReadMore","setIsReadMore","toggleReadMore","reviewsRef","ProductDetails","text","disclaimerHeading","json","value","disclaimerContent","slice","onClick","getDisclaimerText","ProductDisclaimer","ReadMore","readMore","readLess","minLength","isActive","filteredText","setFilteredText","t","useTranslation","textFiltered","replace","p","dangerouslySetInnerHTML","__html","defaultProps","type","item","recipeCardDifficultyTitle","recipeCardDifficultyValue","recipeCardTimeTitle","recipeCardTimeValue","recipeCardServingTitle","recipeCardServingValue","imageList","linkToRecipe","imageTitle","LinkComponent","aria-label","data-availability","aspectRatio","maxHeight","maxWidth","objectFit","objectPosition","Image","src","height","layout","alt","h2","b","RecipeSlider","recipeSliderItems","maxSlides","useWindowDimensions","currentSlide","setCurrentSlide","sliderRef","SamplePrevArrow","arrowClass","undefined","data-testid","Icon","iconName","SampleNextArrow","slideCount","settings","infinite","lazyLoad","swipeDirection","speed","slidesToShow","slidesToScroll","arrows","adaptiveHeight","prevArrow","nextArrow","dots","initialSlide","beforeChange","prev","next","responsive","breakpoint","slickGoTo","Slider","RecipeCard","AccordionItem","setIsActive","clsx","h3","ProductAccordion","accordionData","showModal","setShowModal","expandable1Content","expandable1Label","expandable2Label","expandable3Label","prepTips","nutritionImage","isFixedPrice","recipes","CmsTextEditorContent","Modal","show","onClose","handleZoomIn","image","isZoomed","setIsZoomed","handleModalClose","ZoomInIcon","fontSize","aria-labelledby","aria-describedby","open","sx","display","justifyContent","alignItems","position","top","left","transform","bgcolor","border","boxShadow","loader","CloseIcon","otherImages","selectedImage","setSelectedImage","setImage","containerRef","nutritionFactsImage","nutritionImageIndex","isSelected","onThumbnailClick","goTo","scrollToBottom","child","scrollTo","offsetHeight","behavior","SliderMenu","imageCountSum","count","Object","entries","countImages","showExpandMore","Grid","onKeyDown","IconButton","ExpandMoreIcon","strokeWidth","container","Slide","autoplay","onChange","_","newIndex","transitionDuration","ProductZoomInModal","useIsVisible","isIntersecting","setIntersecting","observer","IntersectionObserver","entry","observe","disconnect","lineItems","state","cart","SKU","masterVariant","sku","itemIndex","findIndex","getItemQty","itemQuantity","setItemQuantity","qtyInputValue","setQtyInputValue","favIcon","setFavIcon","isFavoritesEnableForCA","nextAppEnv","productType","obj","key","lang","attribs","attributes","description","badges","getAllBadges","actualCurrency","priceData","prices","channels","availability","weight","getWeightValue","UOM","getUomValue","ctUnitPrice","getCTUnitPrice","availableQuantity","isOnStock","keys","find","checkProductIsOnStock","qtyPerPackage","getQtyPerPackage","netWeight","formatNetWeight","unitPrice","formatUnitPrice","variableMinAndMaxWeight","getMinAndMaxWeight","unitPriceCA","formatUnitPriceCA","totalPrice","getPriceOrDiscounted","productPrice","countryOfOriginLabel","countryOfOrigin","countryOfOriginIndex","el","getCountryOfOrigin","finalPriceMessage","isCanadianLocale","prepTipsIndex","getPrepTips","isMobileAndNotTablet","data","dataLayer","event","ViewContent","ecommerce","filteredItem","filterItemDetailsForDataLayer","FilterItemType","GTMViewContent","ButtonCartAddOrUpdateProps","decrementalPayload","callback","handleOnChangeQuantity","isNaN","Number","handleUpdateQuantityPayload","prevQuantity","incrementalPayload","productDetailPage","useFavorites","favoritesList","handleAddFavorite","handleRemoveFavorite","isFavorite","setIsFavorite","handleFavorite","isLoggedIn","useCustomer","getFavoritesList","getFavoritesListMemo","useCallback","isTitleExpanded","setIsTitleExpanded","some","galleryWidth","toFixed","ref1","ref2","isVisibleTablet","isVisibleLaptop","setActive","scrollToReviews","offset","getBoundingClientRect","scrollY","scrollToReadMore","handleTitleExpand","prevState","section","Breadcrumb","ProductGallery","h1","badge","Badge","outOfStockBadge","StarRating","size","color","reviewRef","readMoreLabel","readLessLabel","button","ButtonCartAddOrUpdate","setDYContext","DY_PAGE_CONTEXT","Script","strategy","CmsPage","module"],"sourceRoot":""}